﻿using System;
using System.Collections.Generic;
using System.Text;
using static MAVLink;

namespace DroneLib.Vehicles
{
    partial class Vehicle
    {
        public delegate void SearchProgressChangedEventHandler(int time);
        public static event SearchProgressChangedEventHandler SearchProgressChanged;

        public delegate void DownloadParamsProgressChangedEventHandler(Vehicle vehicle,int totalParamCount, int percent);
        public event DownloadParamsProgressChangedEventHandler DownloadParamsProgressChanged;

        public delegate void MissionProgressChangedEventHandler(Vehicle vehicle, int percent);
        public event MissionProgressChangedEventHandler DownloadMissionProgressChanged;
        public event MissionProgressChangedEventHandler UploadMissionProgressChanged;

        public delegate void VehicleLostEventHandler(Vehicle vehicle);
        public event VehicleLostEventHandler VehicleLost;
        public event VehicleLostEventHandler VehicleDisconnected;

        public delegate void VehicleRegainedEventHandler(Vehicle vehicle);
        public event VehicleRegainedEventHandler VehicleRegained;

        public delegate void SystemInfoReceivedEventHandler(Vehicle vehicle, DateTime time,string message, MAV_SEVERITY severity);
        public event SystemInfoReceivedEventHandler SystemInfoReceived;

        public delegate void MissionItemReachedEventHandler(Vehicle vehicle, int waypointNumber);
        public event MissionItemReachedEventHandler MissionItemReached;

        public delegate void HomeChangedEventHandler(Vehicle vechile);
        public event HomeChangedEventHandler HomeChanged;

        public delegate void WaypointChangedEventHandler(Vehicle vehicle, int newWaypointNo);
        public event WaypointChangedEventHandler WaypointChanged;

        public delegate void GuidedWaypointArrivedEventHandler(Vehicle vehicle);
        public event GuidedWaypointArrivedEventHandler GuidedWaypointArrived;
    }
}
